#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass article
\begin_preamble
\usepackage{hyperref}
\tolerance 10000
\end_preamble
\language turkish
\inputencoding auto
\fontscheme pslatex
\graphics default
\paperfontsize default
\spacing single 
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Title

�OMAR Mimari Belgesi
\layout Author

G�rer �zen (gurer @ uludag.org.tr)
\layout Standard
\pagebreak_top 

\begin_inset LatexCommand \tableofcontents{}

\end_inset 


\layout Section
\pagebreak_top 
Giri�
\layout Standard

Bu belge, Ulusal Da��t�m'�n yap�land�rma y�netim sistemi olan �OMAR'�n,
 ne ama�la geli�tirildi�ini, hangi sorunlara ��z�m getirdi�ini, yap�s�n�
 ve bile�enlerini anlat�r.
 Hedef kitlesi, �OMAR'� yak�ndan tan�mak isteyen kullan�c�lar ve sistem
 y�neticileridir.
 Bili�im okuryazar� seviyesine g�re yaz�lm�� olmakla birlikte, baz� tart��malar�
 takip edebilmek i�in, bir i�letim sisteminin bile�enleri, ve uygulamalar�n
 nas�l ayarland��� gibi sistem y�netimi konular�nda bilgi sahibi olmak gerekebil
ir.
\layout Section
\pagebreak_top 
Sorun
\layout Standard

�e�itli uygulamalar bir sistem i�inde bir araya getirildiklerinde, birbirleriyle
 uyumlu �al��abilmeleri i�in ayarlanmalar� gerekmektedir.
 Kurulan bir uygulaman�n masa�st� men�s�ne eklenmesi, a�abildi�i dosya tiplerini
 sisteme bildirmesi, yeni kurulan bir spam (istenmeyen eposta) filtreleyicinin
 mevcut eposta sunucusuna ba�lanmas� gibi �ok say�da entegrasyon i�lemi
 bulunmaktad�r.
 Kullan�c�, bu ayarlar� yapabilmek i�in, kendi yapmak istedi�i i�in d���ndaki
 teknik konularda bilgi kazanmak zorunda kalmakta ve zaman kaybetmektedir.
\layout Subsection

Belgeler
\layout Standard

�zg�r yaz�l�m camias�, bu i�leri kolayla�t�rmak i�in 
\begin_inset Quotes eld
\end_inset 

nas�l
\begin_inset Quotes erd
\end_inset 

 (ing.
 howto) belgeleri ad�yla �e�itli belgeler haz�rlam��t�r.
 Bunlar bir i�i yapabilmek i�in neler yap�lmas� gerekti�ini ad�m ad�m anlatan
 k�sa belgelerdir.
 Kullan�c�lar�n belge okumak istememeleri ve belgelerin k�s�tl� say�da senaryoyu
 kapsamas� y�z�nden faydal� olamamaktad�rlar.
\layout Standard

Burda akl�m�za, madem bir i�i ad�m ad�m belgeleyebiliyoruz, bunu bir program
 haline getirip otomatik olarak yap�lmas�n� sa�layamaz m�y�z? sorusu gelmektedir.
 Bu yap�labilirse, kullan�c�n�n zaman tasarrufu yan�nda, bu belgelerin �e�itli
 dillere terc�me edilmesi gibi i�ler de gereksiz hale gelecektir.
\layout Subsection

Di�er Linux Da��t�mlar�
\layout Standard

Linux da��t�mlar� geli�me s�re�leri i�erisinde bu t�r entegrasyon problemleri
 ile kar��la�t�k�a bunlara ayr� ayr� ��z�mler �retip kendi sistemlerine
 (�zellikle paket y�netici yaz�l�mlar�n�n i�ine) dahil etmi�lerdir.
 Bu ��z�mler, kurulu uygulamalar (men�), fontlar, a��l�� i�lemleri (initscripts)
 gibi tek tek alt sistemler baz�ndad�r.
\layout Standard

Genellikle, uygulama paketleri, dosya sistemi �zerinde sabit bir dizine,
 s�z konusu alt sisteme neler sa�lad�klar�n� kaydetmekte; bu alt sistemi
 kullanacak uygulamalar ise, buraya �nceden belirlenmi� bi�imde kaydedilen
 dosyalar� tarayarak, sa�lanan hizmetleri bulmaktad�r.
 Uygulamalar�n entegrasyonu i�in, ya uygulamalar buradaki standartlar� bilecek
 bi�imde de�i�tirilmekte, ya da gerekli �evrimi yapacak ���nc� bir y�netici
 uygulama araya sokulmaktad�r.
 Kay�t ve �evrim i�lemleri i�in �zel veri bi�imleri, kabuk, Perl ya da Python
 betikleri, bazen de bunlar�n bir kar���m� kullan�lmaktad�r.
\layout Standard

Bir de uygulama kurulur, kald�r�l�r ve g�ncellenirken �al��an �zel betikler
 bulunmaktad�r.
 Bunlarla g�ncelleme s�ras�nda eski ayarlar�n ta��nmas� gibi i�ler yap�lmaktad�r.
 Baz� sistemler (�rne�in Debian'�n debconf'u) kurulum an�nda bu betiklerin
 kullan�c�ya soru sorabilmeleri ve uygulamay� cevaplara g�re ayarlamalar�n�
 sa�lamaktad�r.
\layout Standard

Burda g�rd���m�z noksanl�klar:
\layout Itemize

Her sorun i�in ayr� bir ��z�m kullan�lmas� benzer i�lerin tekrar tekrar
 yap�lmas�na yol a�maktad�r.
 Genel bir ayar profili olu�turmay� ve y�netmeyi zor k�lmaktad�r.
 Birbirleriyle ili�kileri eksik kald��� i�in yeterli entegrasyonu sa�layamamakta
d�r.
\layout Itemize

Yap�land�rma ile paket kurulumu i� i�e ge�mi�tir.
 Bir paket (�zellikle bir sunucu uygulamas�) kuruldu�unda �al��acak �ekilde
 yap�land�r�lmas�n�n yanl�� oldu�unu, uygulaman�n ancak kullan�c� bir emir
 verdi�inde, verilen emre g�re yap�land�r�lmas�n�n anlaml� oldu�unu d���n�yoruz.
 Yap�land�rma, kurma ve kald�rma ile ilgisi olmayan ve uygulama sistemde
 durdu�u s�rece her an ihtiya� duyulabilecek bir i�tir.
\layout Itemize

Bir s�r� veri bi�imi ve dil kullan�lmas�, ��renme ve hata d�zeltme s�re�lerini
 �ok g��le�tirmektedir.
\layout Itemize

Bir sorun ��kt���nda sistemi �al��abilir bir konuma getirmek, uygulamalar
 g�ncellenirken kullan�c� ayarlar�n� ve sistemin tutarl�l���n� korumak �ok
 zor olabilmektedir.
\layout Subsection

Di�er ��letim Sistemleri
\layout Standard

Windows, OS/2, MacOS X gibi i�letim sistemlerinde, sistemin par�alar� ve
 kullan�c�n�n �al��ma ortam�n� olu�turan uygulamalar genellikle tek bir
 merkezden ��kt�klar� i�in, uyum sorunlar� i�letim sisteminin �a�r�lar�
 (API si) �zerinden ��z�lmektedir.
 Ayarlar� toplu halde tutan merkezi bir k�t�k ile birlikte; �okluortam,
 a� protokol�, donan�m y�neticisi gibi par�alar i�in par�alar�n yerle�ebilece�i
 mod�l yap�lar� bulunmaktad�r.
\layout Standard

Bu yakla��mda �u noksanl�klar� g�r�yoruz:
\layout Itemize

Uygulamalar�n ayarlar�na merkezi eri�im sunulmas�, tek ba��na istenen fayday�
 getirmemektedir.
 Bir genel model olmad��� i�in, bu bilgileri kullanmak isteyen kullan�c�
 yada di�er uygulamalar�n, bilgiyi sunan uygulama ve ayarlar� hakk�nda detayl�
 bilgiye sahip olmas� sorunu hala ortadad�r.
\layout Itemize

Uygulamalar ve y�netim sistemi aras�nda API d�zeyinde bir ili�ki, iki grubu
 i� i�e ge�irip direkt ba�lant� sa�layaca�� i�in, par�alar�n ba��ms�zl���n�
 azaltacakt�r.
 Bu da, ayr� ayr� par�alar�n geli�tiricilerinin, adam/ay modelinde ba��ms�z
 �al��mak yerine, bir araya gelip kar��l�kl� ileti�im ve senkronizasyon
 ile �al��mas�na, dolay�s�yla geli�tirme i�lerinin �l�eklenebilirli�inin
 azalmas�na yol a�maktad�r.
\layout Itemize

Par�alar�n farkl� ellerden ��kt�klar� ve alternatiflerin bol oldu�u �zg�r
 yaz�l�m modeline uymamaktad�r.
\layout Itemize

Da��t�m�m�za girecek uygulamalar� yeni API leri kullanacak �ekilde de�i�tir\SpecialChar \-
mek,
 uy\SpecialChar \-
gu\SpecialChar \-
la\SpecialChar \-
ma kodu �zerinde b�y�k de�i�iklikler yapmay�, ve yap�lan de�i�ikliklerin
 yeni sorunlara yol a�mad���n� kapsaml� olarak analiz etmeyi gerektirmektedir.
 Bu da b�y�k zaman ve emek harcamas�na yol a�acakt�r.
 Kodunu de�i�tirme olana�� olmayan uygulamalar�n sisteme entegre edilebilmesini
 �nleyecektir.
\layout Itemize

Bu API lerin her uygulamadan kullan�labilmesi ya CORBA, COM gibi karma��k
 ��z�mler ya da �ok say�da 
\begin_inset Quotes eld
\end_inset 

wrapper
\begin_inset Quotes erd
\end_inset 

 gerektirmektedir.
\layout Itemize

Bir alt sistemin yetersiz kald��� g�r�l�p yeni bir alt sistem yap�s� geli�tirild
i�inde, API de�i�ikli�ine yol a�mamak i�in API �zerindeki de�er ve �a�r�lara
 kapsamlar� d���nda anlamlar ve g�revler y�klenmekte, ve API yi ��renmek
 ve kullanmak isteyenlerin i�i �ok zorla�maktad�r.
 Ya da API de�i�ikli�i yap�lmakta, ve varolan uygulamalar�n yeni API yi
 ta��nmas�, eski ve ���nc� parti uygulamalar i�in uyumluluk katmanlar� haz�rlanm
as� gibi fazladan sorunlar ��kmaktad�r.
\layout Subsection

�zel Y�netim Uygulamalar�
\layout Standard

Linux'un masa�st� ve i� d�nyas�nda kullan�m�n�n artmas�yla, bir tak�m genel
 yap�land�rma ve y�netim ara�lar� da geli�tirilmi�tir.
 YaST, LinuxConf, WebMin gibi bu ara�lar kullan�c�ya �st seviye bir arabirim
 sunup, kullan�c�n�n burada yapt��� se�imleri uygulamalar�n alt seviye ayarlar�n
a ta��maktad�r.
 �ki seviye aras�nda ge�i� yapabilmek i�in gereken bilgiler ara�lar�n i�inde
 bir dizi kural olarak kodlanm��t�r.
\layout Standard

Bundan ba�ka, bilgisayar a�lar�n�n yayg�nla�mas�yla birlikte, birden fazla
 bilgisayar�n merkezi y�netimini yapabilecek IBM Tivoli, HP OpenView, CIM,
 SNMP, OSI CMIP gibi �r�n ve �er�eveler ortaya ��km��t�r.
 Ayr�nt�larda farklar� olmakla birlikte, genel mimarileri, y�netilecek bilgisaya
rda bulunacak ajanlar, y�netim bilgisayar�nda bir y�netici yaz�l�m, bunlar
 aras�nda bir ileti�im protokol� ve y�netilecek g�rev ve ayarlar� belirten
 bilgi modellerinden olu�maktad�r.
 Yaln�zca yap�land�rma ile s�n�rl� kalmay�p, hata bulma, performans ve g�venlik
 de�erlendirmeleri, kullan�m hesaplama gibi i�leri de yapmaktad�rlar.
\layout Standard

Bu ara�larda g�rd���m�z yanl��lar:
\layout Itemize

�st d�zey bir model de�il, alt d�zey ayarlar y�neticiye sunulmaktad�r.
\layout Itemize

Yap�land�rma problemlerini g�rev tabanl� de�il, uygulama tabanl� ele almaktad�rl
ar.
\layout Itemize

Uygulamalara g�revi yapt�rmak i�in gereken bilgi uygulamalarda de�il merkezde
 (y�netici yaz�l�m�n i�inde) bulunmaktad�r.
 Bu bilgiler, bir arada olduklar� ve birden fazla par�aya ait detaylar�
 i�erdikleri i�in, �ng�r�lmeyen durumlarda hata ortaya ��karma ihtimalleri
 artmaktad�r.
\layout Section
\pagebreak_top 
Gerekler
\layout Standard

Bir yap�land�rma sisteminin iki m��terisi olacakt�r.
 Biri sistemin �al��aca�� bilgisayardaki kullan�c�lar, di�eri ise bu sisteme
 paket veya y�netim ara�lar� yapacak olan geli�tiricilerdir.
\layout Subsection

Kullan�c� Gerekleri
\layout Enumerate

Yap�land�rma sorunlar� m�mk�n oldu�unda otomatik bi�imde ��z�lmeli, kullan�c�dan
 ihtiyac� olmayan teknik detaylar� bilmesi ve ayarlamas� istenmemelidir.
\layout Enumerate

Otonom olarak �al��abilmeli, gerekti�inde g�m�l� sistemlerde de kullan�labilmesi
 i�in grafik aray�zlerden ba��ms�z olmal�d�r.
\layout Enumerate

G�revler ko�utzamanl� (concurrent) �al��mal�, biri di�erini yava�latmamal�d�r.
\layout Enumerate

Kullan�c�n�n karar vermesi gereken durumlar kullan�c�ya g�rev tabanl� bir
 yakla��mla ve bili�im okuryazar�na y�nelik terimlerle sunulmal�d�r.
 G�rev yerine uygulama baz�nda ayarlar�n sunulmas�, sorular�n teknik detaylara
 ait terimlerle sorulmas� istenmemektedir.
\layout Enumerate

Otomatik yap�lacak yap�land�rmalar veya kullan�c�n�n yap�land�rma istekleri,
 sistemi asla i� tutarl�l���n� kaybetmi� hale getirmemelidir.
 Ba�ka bir sebepten bu duruma gelen sistemi tekrar tutarl� hale getirebilmek
 m�mk�n olmal�d�r.
\layout Enumerate

Kullan�c�n�n istekleri farkl� adlar alt�nda birer profil olarak gruplanabilmeli,
 sistem bir profilden di�erine rahat�a ge�ebildi�i gibi, gerekti�inde bu
 profiller bir sistemde kaydedilip, di�er bir sisteme ta��nabilmelidir.
\layout Enumerate

Sistem y�neticisi di�er kullan�c�lara belirli kriterlere g�re yap�land�rma
 karar� verme yetkisi da��tabilmelidir.
 B�ylece kullan�c�lar�n gerekti�inde 
\begin_inset Quotes eld
\end_inset 

k�k
\begin_inset Quotes erd
\end_inset 

 (ing.
 root) kullan�c� olmadan da sistemin belirli bir b�l�m�nde (�rne�in a� ileti�imi
, paket kurulumu, ya da donan�m) yap�land�rma ve y�netim yapabilmesi m�mk�n
 olacak, k�k kullan�c�ya olan ba�l�l�k ortadan kald�r�labilecektir.
\layout Subsection

Geli�tirici Gerekleri
\layout Enumerate

Her yap�land�rma problemi i�in ayn� ortak alt yap�n�n kullan�lmas�, sistemin
 bir b�t�n olarak modellenmesi istenmektedir.
 Bu geli�tirme i�lerini kolayla�t�racakt�r.
\layout Enumerate

Uygulamalar, �zerlerinde b�y�k de�i�iklikler yap�larak de�il, gerekli yap�land�r
ma bilgisini ta��yan ufak arac�lar eklenerek sisteme entegre edilmelidir.
\layout Enumerate

Her bir uygulama pakedinin yap�land�rma bilgisi tamamen kendi i�inde olmal�,
 ve tek bir dil ve veri bi�imi ile tan�mlanmal�d�r.
\layout Enumerate

Yap�land�rma sistemi, ilerde ortaya ��kabilecek de�i�ik �zellikte uygulamalar�n
 entegrasyonunda sorun ��kartmayacak esnek bir g�rev modeline sahip olmal�d�r.
\layout Enumerate

Yap�land�rma sistemi ile kurulacak ileti�imde dil veya veri bi�imi ba��ml�l���
 problemi olmamal�d�r.
\layout Enumerate

Sistem, kendi ile ileti�im kuran uygulamalara, s�rekli bir sorma gereksinimi
 b�rakmadan, bir tak�m olaylar�n olu�tu�unu haber verebilmelidir.
\layout Section
\pagebreak_top 
�OMAR
\layout Standard

Bu gerekleri sa�layacak bir sistem olu�turabilmek i�in ilk ad�m, yap�land�rma
 sorunlar�n�n tarif edilebilece�i bir model olu�turmakt�r.
 Genel olarak iki tip sorun vard�r.
\layout Standard

Birinci tip sorunlar iki uygulaman�n birbiriyle uyumlu �al��mas�n�n gerekti�i
 yerlerde ��karlar.
 Bunlar� ��zebilmek i�in her uygulaman�n,
\layout Enumerate

Di�er uygulamalar�n bilgilerine eri�ebilmesini ve kendi bilgilerini di�er
 uygulamalara sunabilmesini,
\layout Enumerate

�nceden belirlenmi� g�revler i�inden neleri yapabildi�ini sisteme bildirebilmesi
ni,
\layout Enumerate

Kendi g�revleri d���ndaki i�lere kar��mamas�n�, bunlar� ilgili uygulamalardan
 istemesini,
\layout Enumerate

Bilgileri de�i�ti�inde, ilgilenen uygulamalar� haberdar edebilmesini sa�lamak
 gerekir.
\layout Standard

B�ylece uygulamalar kendilerini birbirlerine g�re ayarlayabileceklerdir.
\layout Standard

�kinci tip sorunlar ise tek bir uygulaman�n yap�land�r�lmas�nda ortaya ��karlar.
 Ayn� g�revleri yapabilen uygulamalar fonksiyonel bir s�n�f olu�turmaktad�r.
 De�i�en �ey, her birinin bu g�revi yapmak i�in farkl� �ekilde ayarlanmas�
 gerekece�idir.
\layout Standard

Buradan, uygulamalar�n e� g�revleri olan fonksiyonel s�n�flar olarak s�n�fland�r
�labilece�i, ve bu s�n�flar ortogonal olarak tasarland���nda, uygulamalar
 aras� yap�land�rma problemlerinin ��z�m� i�in gereken �artlar� sa�layabilece�im
iz sonu�lar�na var�yoruz.
\layout Standard

Ortogonal olarak tasarlanm�� s�n�flardan olu�an kapsay�c� bir sistem modeli
 olu�turduktan sonra, kar��m�za modelden istenen g�revleri uygulamalara
 aktarma sorunu ��kmaktad�r.
\layout Standard

Uygulamalar� bize ait API leri kullanacak bi�imde de�i�tirmek gereklerimize
 uygun de�ildir.
 Uygulamalar�n �al��malar�n� y�netecek bilgiler ve ayarlanmas� gerekti�i
 d���n�len se�enekler genellikle uygulama yazarlar� taraf�ndan �nceden d���n�l�p
, bir tak�m ayar dosyalar�ndan, komut sat�r� parametrelerinden, ve benzer
 yollarla elde edilip kullan�lacak duruma getirilmi�tir.
 O halde en uygun yol, birer arac� programc�k ile modeldeki g�revleri, uygulamal
ar�n kendi ayar ve komutlar�na �evirmektir.
\layout Standard

Bu programc�klar� bir arada ve d�zenli olarak �al��t�rabilmek, yap�land�rmalar�
 profiller baz�nda y�netebilmek, kullan�c�lara g�revlere eri�im yetkisi
 verebilmek gibi gerekleri kolayca sa�layabilmek i�in, bir y�netici servis
 program� gerekmektedir.
\layout Standard

Yap�land�rma grafik aray�zleri, paket y�neticisi, �st d�zey y�netim programlar�
 bir ileti�im kanal� arac�l��� ile bu y�netici programa ba�lan�p, model
 �zerindeki g�revleri kullanabileceklerdir.
\layout Standard

Toparlarsak, gereksinimlerimizi kar��layabilecek ve di�er benzer sistemlerdeki
 sorunlara d��meyecek bir yap�land�rma y�netim �er�evesi i�in ihtiyac�m�z
 olan bile�enler, bir sistem modeli, uygulamalar� bu modele oturtmak i�in
 gerekli arac� programc�klar ve bu programc�klar� i�letecek bir uygulamad�r.
 �imdi bu bile�enlere detayl� olarak bakal�m.
\layout Subsection

Sistem Modeli
\layout Standard

Sistem modeli, e� g�revleri olan uygulamalar�n fonksiyonel s�n�flar�ndan
 olu�maktad�r.
 Burdaki s�n�f kavram�, nesne tabanl� programlamadaki (OOP) s�n�f kavram�na
 yak�nl�k ta��d���ndan, ayn� isimlendirmeleri kullanmak ��renme kolayl���
 sa�layacakt�r.
\layout Standard

Buna g�re, bir s�n�f, bir veya birden fazla uygulamaya ait arac� programc�klar
 (nesneler) taraf�ndan sa�lanan, ve �zerinde yap�lacak g�revlere kar��l�k
 gelen metotlar i�eren bir tan�mlamad�r.
\layout Standard

Bu nesnelerin, metotlar d���nda OOP anlam�nda �zniteliklere sahip olmalar�
 gerekli g�r�lmemi�tir.
 Bunlar i�letilirken sistemin do�as� gere�i birer fonksiyon olarak �a�r�lacak
 ve tek parametreli bir metottan farkl� olmayacaklard�r.
\layout Standard

Ayr� yap�land�rma problemlerine y�nelik olduklar�ndan dolay�, s�n�flar aras�nda
 herhangi bir kal�t�m (inheritance) ili�kisi yoktur.
 Bununla birlikte yak�n ama�lara y�nelik s�n�flar (�rne�in ileti�imle ilgili
 s�n�flar, donan�m tan�mayla ilgili s�n�flar, vb) bir grup ismi alt�nda
 bir araya toplanm��t�r.
 Grup kavram�, model �zerinde yetki denetimi tan�mlarken kolayl�k sa�lad���
 gibi, modeli mant�ksal olarak d�zenli tuttu�u i�in tercih edilmi�tir.
 Bir grup yaln�zca, kendine ait s�n�flar� bir arada tutar, metot ya da nesneleri
 yoktur.
\layout Standard

Benzer bi�imde, arac� programc�klar aras�nda kod payla��m� s�z konusu de�ildir.
 Bunlar�n ihtiya� duyaca�� ortak yordamlar, API olarak �OMAR taraf�ndan
 kendilerine sunulacakt�r.
\layout Standard

B�ylece her bir nesne di�erinden yal�t�lm�� olaca��ndan, nesnelerin birbirlerini
n i� detaylar�n� bilmesi, ya da ba�ka bir nesneye direkt olarak ba�l� olmas�
 gibi durumlar olu�mayacakt�r.
\layout Standard

Her uygulama sa�lad��� s�n�flara ait nesneleri yan�nda ta��r ve kurulum
 s�ras�nda �OMAR'a kaydeder.
 Bu nesneler model �zerinde ait olduklar� s�n�flara yerle�tirilir.
\layout Subsubsection*

�simlendirmeler
\layout Standard

Model �zerinde gruplar direkt adlar�yla g�sterilir, s�n�flar grup ad� ile
 birlikte,
\layout Quote


\series bold 
Grup.S�n�f
\layout Standard

bi�iminde g�sterilirler, her s�n�f mutlaka bir grubun i�indedir.
 S�n�f metotlar� ise
\layout Quote


\series bold 
Grup.S�n�f.metotAd�
\layout Standard

bi�iminde yaz�l�r.
\layout Subsubsection*

Tasar�m Kurallar�
\layout Standard

Sistem modeli tasarlan�rken baz� noktalara dikkat edilmesi gerekmektedir.
\layout Enumerate

Belli uygulamalar�n de�il, bu uygulamalar�n yapt��� g�revlerin yap�land�r�lmas�
 g�zetilmeli, modelin genelli�i yitirilmemelidir.
\layout Enumerate

Modelin geli�en teknolojilerle birlikte eskiyip, kullan��s�z hale gelmemesi
 i�in, esnek olmas� g�zetilmelidir.
\layout Enumerate

Bununla birlikte, ucu a��k, tan�mlanmam�� bilgi ve g�revler modele sokulmamal�d�
r.
\layout Enumerate

Burda ayr�m� do�ru yapabilmek i�in, g�rev ve bilgilerin genel kullan�ma
 m�, yoksa �zel kullan�ma m� y�nelik oldu�u bir kriterdir.
 Bir nesnenin bir g�revi e�er �st katmandaki her nesne taraf�ndan kullan�labiliy
orsa geneldir, a��k�a ve kesin olarak tan�mlanmal�d�r.
 E�er g�revin kullan�m� sadece �zel bir �st nesne taraf�ndan yap�labiliyorsa,
 �zeldir ve bunun bilgisi tan�mlanmaya �al���lmak yerine, �st nesneye hedef
 olarak verilip, kendi aralar�ndaki ili�kileri kendilerinin kurmalar� desteklenm
elidir.
\layout Enumerate

Model, kullan�c� ve g�rev tabanl� tasarlanmakla birlikte, g�rev uygulamalar�n�n
 ihtiya�lar�na y�nelik teknik bilgiler de ta��yacakt�r.
 Bu durumlar�n modelde a��k�a belirtilmesi �nemlidir.
\layout Subsection

Arac� Programc�klar (CSL)
\layout Standard

Ne yaz�k ki basit bir tan�mlama dili, g�revleri uygulamalara ta��maya yetmemekte
dir.
 ��nk� arac�n�n bir�ok durumda kendi i�inde birden fazla i�lem yapmas�,
 �e�itli kriterlere g�re i�i nas�l yapt�raca��na karar vermesi, gerekti�inde
 uygulamay� y�netebilmek i�in, genel API lerin sa�layabilece�inin d���nda
 fonksiyonlar kullanmas� gerekmektedir.
 �terasyon, karar verme, kar��la�t�rma, aritmetik ve string i�lem yapma
 �zellikleri olan bir dil gereklidir.
\layout Standard

Bu dilin se�imi �zg�r b�rak�labilir, ancak bu durumda yap�land�rma sisteminin
 ba��ml�l�klar� artmaktad�r.
 En �nemlisi diller aras� uyum, hata giderme i�lemleri ve ��renme s�reci
 �ok g��le�mektedir.
 Bu nedenle tek bir dil kullan�lmal�d�r.
\layout Standard

Genel bir programlama dilinde bulunan �o�u mod�l ve kitapl�k (�zellikle
 grafik aray�ze y�nelik olanlar) gerekmeyecektir.
 Sorun ��kmamas� i�in dilde bu destekler hi� olmamal� ya da kapat�labilmelidir.
 �htiya� duyulacak API ler, ayar dosyalar�n� okuyup yazma, programlar� �al��t�r�
p durdurma gibi i�lere y�nelik olacakt�r.
\layout Standard

Bu i� i�in en uygun dil olarak g�rd���m�z Python'u temel ald�k.
 Python i�leticisini (VM), bizim belirledi�imiz baz� mod�lleri (string,
 re, config mod�lleri, vb...) al�p, bunun �st�ne ihtiyac�m�z olan di�er fonksiyonla
r� bir mod�l olarak ekleyerek CSL (�omar Scripting Language) ad�n� verdi�imiz
 bir alt dil olu�turduk.
 Nedenlerimiz:
\layout Itemize

P�S� paketlerinin haz�rlama ve derleme betiklerinde de Python kullan�ld���
 i�in paket yap�c� tek bir dil ��renip kullanarak tam bir Pardus pakedi
 haz�rlayabilecektir.
\layout Itemize

Python VM, h�z ve kaynak kullan�m� olarak �ok uygundur.
 Bir i�letici program i�inden rahat�a ayarlan�p kullan�labilen bir kitapl�k
 halindedir.
\layout Itemize

Program yazarken s�k�a kar��la��lan yap�lar�n (design patterns) �o�u Python'da
 temel �zellik olarak bulundu�u i�in kod temiz ve anla��l�r olmakta; implementas
yon, mant��� g�lgelememektedir.
\layout Itemize

Minimal ve temiz sentaks� dolay�s�yla kodlar�n boyutu k�sa, okunabilirli�i
 y�ksek olmaktad�r.
\layout Subsection

Yap�land�rma Y�neticisi
\layout Standard

�OMAR i�letici uygulamas� (comard), kullan�c� aray�zleri, �OMAR destekli
 uygulamalar ve �e�itli ara�lardan gelen g�rev isteklerini sistem modeli
 �zerindeki uygulama nesnelerine yapt�ran bir sistem servisidir.
\layout Standard

Bu istekleri almak, ve olup biten yap�land�rma olaylar�n� ba�lanan uygulamalara
 aktarabilmek i�in bir ileti�im kanal� gereklidir.
 �OMAR'�n �n tan�ml� ileti�im kanal� sistemde sabit bir UNIX soket olmakla
 birlikte, yerel ba�lant�lar i�in DBus, uzak ba�lant�lar i�in HTTP, SSH
 gibi protokoller, hatta e-posta ya da SMS gibi ileti�im kanallar� mod�ler
 olarak kullan�labilir.
\layout Standard

Her bir ileti�im mod�l�, �OMAR �a�r�lar�n� iletmek, ve gelen �a�r�lar�n
 hangi kullan�c�dan geldi�i, ileti�im hatt�n�n �ifreli olup olmad���, iletinin
 elektronik imzayla do�rulan�p do�rulanmad��� gibi bilgilere bakarak �OMAR'�n
 yetki denetim mekanizmas�ndan ge�irmekle sorumludur.
 ��letici elindeki nesnelerle sisteme kullan�c� eklemek, alt d�zey ayarlar�
 de�i�tirmek gibi i�ler yapabilmekte, bunlar� yapabilmek i�in en y�ksek
 yetki seviyesinde �al��maktad�r.
 G�venlik a��klar�na yol a�mamak i�in, ileti�im mod�llerinden gelen isteklerin
 yetki denetiminden ge�meden i�leticiye ge�mesine izin verilmemelidir.
\layout Standard

Yetki denetimi grup, s�n�f ve metotlar �zerinde tan�mlanabilmelidir.
 B�ylece bir kullan�c�ya ayar de�i�tirme yetkisi vermeden bilgi sorma metotlar�n
� �a��rma yetkisi verilebilmesi ya da b�t�n bir grubun y�netiminin tek bir
 kullan�c�ya verilmesi kolayca tan�mlanabilir.
\layout Standard

G�revleri sa�layan nesneler paralel olarak veya �a�r� bir nesneye y�nelikse
 tek olarak i�letilir.
 Bir nesne i�inden ba�ka bir s�n�fa yeni bir �a�r� yap�labilir.
 Bir paket kuruldu�unda uygulaman�n nesnelerini model kaydettiren, kald�r�ld���n
da ��karan �a�r�lar da mevcuttur.
\layout Standard

�zellikle a��l�� esnas�nda bir s�r� i�lem yap�lmaktad�r, bu i�lemler birbirlerin
den ba��ms�z olduklar�, aralar�ndaki ba��ml�l�klar �ok az oldu�u i�in paralel
 �al��t�r�lmalar� b�y�k h�z kazanc� sa�layacakt�r.
 �steklerin paralel y�r�t�lebilmesi, kullan�c�n�n interaktif i�lemlerine
 �abuk yan�t verebilmek i�in de �nemlidir.
 Bu ama�la her bir nesne ayr� bir s�re� olarak i�letilecektir.
 Linux'ta yeni bir s�re� yaratan fork �a�r�s�, bir performans kayb� yaratmayacak
 kadar h�zl� �al��makta ve s�re�lerin bellek alanlar� copy-on-write metodu
 ile �o�alt�ld��� i�in gereksiz kaynak israf�na da yol a�mamaktad�r.
\layout Standard

Yap�land�rma i�lemleri sistemde s�rekli ve s�k bi�imde yap�lmamaktad�r.
 Yap�lacak i�ler azald���nda ya da i� olmad���nda minimum kaynak kullan�m�na
 ge�ilebilmelidir.
 Nesnelerin ayr� s�re�ler olarak i�letilmesi bunu da kolayla�t�rmakta, i�ler
 hep ana s�re� d���nda yap�ld��� i�in, bir i� olmad���nda sadece temel takip
 i�lemleri �al���r halde kalmaktad�r.
\layout Standard

Nesneler belirli bir durumda (bir sistem olay� ya da peryodik zaman olaylar�)
 bir metotlar�n�n �a�r�lmas�n� isteyebilirler.
 �OMAR i�leticisi bu istekleri kaydeder ve ilgili olay meydana geldi�inde
 ilgilenen nesneleri �a��r�r.
\layout Subsection

Kullan�c� Aray�zleri
\layout Standard

�OMAR'� kullanacak en temel uygulama P�S�'dir.
 Paketleri kurarken, pakede ait nesneleri �OMAR'a verecek ve uygulaman�n
 sisteme entegre edilmesini sa�layacakt�r.
 Paket kald�r�l�rken ise �OMAR'a durumu bildirerek nesnelerin modelden ��kar�lma
s�n� sa�lar.
\layout Standard

Kullan�c�n�n g�revleri kullanmas�n� ve sistemini ayarlayabilmesini sa�layacak
 uygulama ise TASMA'd�r.
 Bir grafik aray�z� olan TASMA, �OMAR'daki bilgileri kullan�c�ya sunmak,
 ve kullan�c�n�n emirlerini �OMAR �a�r�lar�na d�n��t�rmek i�lerini yapar.
\layout Standard

Bunlar d���nda �e�itli aray�zler veya y�netim uygulamalar� da �OMAR'a ba�lan�p
 hizmetlerinden yararlanabilir.
\layout Section
\pagebreak_top 
S�k�a Sorulanlar
\layout Subsection

�OMAR'�n a��l�m� nedir?
\layout Standard

COnfiguration MAnageR.
 �OMAR'�n a��l�m� ilk olarak 
\begin_inset Quotes eld
\end_inset 

Configuration by Objects, Modify and Restart
\begin_inset Quotes erd
\end_inset 

 idi.
 Fakat �OMAR'�n tasar�m s�recinde 
\begin_inset Quotes eld
\end_inset 

Modify and Restart
\begin_inset Quotes erd
\end_inset 

 k�sm�n�n �OMAR'�n i�levselli�ini tam olarak ifade etmez hale geldi�i g�r�ld�
 ve a��l�m�n�n 
\begin_inset Quotes eld
\end_inset 

Configuration Manager
\begin_inset Quotes erd
\end_inset 

 olmas�n�n daha do�ru ve anlaml� olaca��nda karar k�l�nd�.
\layout Subsection

�OMAR bana ne fayda sa�layacak?
\layout Standard

Kurdu�unuz uygulamalar� elle ayarlamaktan, sistemin zaten bildi�i ve kendi
 ba��na bulabilece�i bilgileri elle girmekten, bunun i�in belge okuyup soru
 sorarak zaman kaybetmekten kurtulacaks�n�z.
\layout Standard

Sistemin s�rekli olarak tutarl� bir durumda kalmas�n� sa�layarak, ayar sorunlar�
 y�z�nden �al��amayan programlardan sizi kurtaracak.
\layout Standard

Sundu�u imkanlar ile tek tek uygulama ayarlamaktan ziyade, g�rev temelli
 d���n�lm�� grafik aray�zler yaz�lmas�n� kolayla�t�racak, bu aray�zler sayesinde
 bilgisayara k�lelik yapmak yerine kendi i�inizle u�ra�abileceksiniz.
\layout Subsection

�OMAR desteklemeyen uygulamalar� kullanabilecek miyim?
\layout Standard

Elbette.
 Bu uygulamalar �OMAR'�n sa�lad��� avantajlardan faydalanmayacaklar, ama
 sistemde �al��abilmelerinin �n�nde bir engel olmayacak.
\layout Subsection

Bir uygulamaya �OMAR deste�i vermek zor mu?
\layout Standard

Hay�r.
 Bunun i�in uygulamay� de�i�tirmenize gerek yok.
 Yaln�zca CSL ile �OMAR modelindeki g�revlerin uygulamaya nas�l yapt�r�laca��n�
 tarif eden betikler (nesneler) yazman�z yeterli.
\layout Subsection

CSL yeni bir dil mi?
\layout Standard

Asl�nda hay�r.
 CSL bir Python alt dili.
 Python'un ihtiyac�m�z olmayan mod�lleri ��kar�l�p, baz� yeni mod�llerin
 eklenmesiyle olu�turulmu�, ve sistem modelimizdeki s�n�flara nesne yazmak
 i�in kullan�lacak hale getirilmi� hali diyebiliriz.
 �lk �OMAR tasar�m� ve prototipinde Javascript/C aras� ve �ok k�s�tl� bir
 dil olarak tasarlanm��t�, ama bunun yeterli gelmedi�i ve basitlik sa�lamad���
 g�r�l�nce Python temelli olmas�na karar verildi.
\layout Subsection

�OMAR ile P�S� aras�nda nas�l bir ili�ki var?
\layout Standard

�OMAR ve P�S�, di�er da��t�mlarda bir arada olan kurulum ve yap�land�rma
 i�lerini ay�r�yor ve her i�i kendi sorumluluk sahas� i�inde d�zg�nce tarif
 ediyorlar.
 Birbirlerine ihtiya� duyduklar�nda kullanacaklar� arabirim ise d�zg�n bir
 bi�imde tan�mlanm��.
 B�ylece temiz ve basit bir ��z�m sa�l�yorlar.
\layout Subsection

�OMAR'� devreden ��kart�rsam ne olur?
\layout Standard

Otomatik yap�land�rma i�leri durur, ve �OMAR ile �al��an yap�land�rma aray�zleri
niz (TASMA) art�k �al��maz.
 Yani art�k kendi ba��n�zas�n�z demektir.
 �OMAR'� yeniden ba�latarak bu durumdan kurtulabilirsiniz.
\layout Subsection

�OMAR'�n kconfig, gconf, elektra gibi sistemlerden fark� ne?
\layout Standard

Bu sistemler 
\begin_inset Quotes eld
\end_inset 

configuration
\begin_inset Quotes erd
\end_inset 

 ismini kullanmalar�na ra�men aslen �zel bir veri saklama (storage) sisteminden
 ba�ka bir �ey de�ildirler.
 Uygulama baz�nda, belirli anahtar kelimelere kar��l�k gelen verilerin saklanmas
� ve getirilmesini sa�larlar.
 Bu anahtarlar sistem �ap�nda tan�mlanmam��t�r ve her uygulama i�in farkl�d�r.
 Uygulamalar�n alt d�zey ayarlar�na eri�menizi sa�larlar, ama bir g�revi
 yapmak i�in hangi ayarlar�n de�i�mesi gerekti�i, ayn� i�i yapan farkl�
 bir uygulaman�n bilinmeden nas�l ayarlanabilece�i, ayarlar kar��t���nda
 sistemin tutarl� bir hale nas�l getirilebilece�i gibi sorunlara bir ��z�m
 getirmezler.
\layout Subsection

Neden ba�kalar� b�yle bir ��z�m getirmedi?
\layout Standard

Di�er da��t�mlar ��z�mlerini tarihsel geli�me s�re�leri i�inde ad�m ad�m
 geli�tirdikleri ve ge�mi�e uyumluluk y�k�yle yollar�na devam ettikleri
 i�in bu t�r kapsay�c� ve d�zenli ��z�mler getirmeleri zor.
 Bir �ok yeni giri�im ise genel bir model olu�turmay� ihmal ederek, sorunu
 bir ayar deposu (configuration storage) olarak ele almaya devam etmekte.
\layout Section
\pagebreak_top 
Eme�i Ge�enler
\layout Standard

�lk s�r�m:
\layout Standard

Serdar K�yl�, A.
 Murat Eren, G�rer �zen
\layout Standard

G�zden ge�irme:
\layout Standard

Bar�� Metin, S.
 �a�lar Onur, Onur K���k
\layout Standard

�kinci s�r�m:
\layout Standard

G�rer �zen, Bar�� Metin, Eray �zkural
\the_end
